常见特殊字符

1. 字符类
[abc]：匹配字符 a、b 或 c 中的任意一个。
[^abc]：匹配任何不包含 a、b 和 c 的字符（取反）。
[a-z]：匹配任何小写字母。
[A-Z]：匹配任何大写字母。
[0-9]：匹配任何数字。

2. 元字符
.：匹配任意单个字符（除换行符外）。
\d：匹配任何数字，等同于 [0-9]。
\D：匹配任何非数字字符。
\w：匹配任何字母数字字符，包括下划线，等同于 [a-zA-Z0-9_]。
\W：匹配任何非字母数字字符。
\s：匹配任何空白字符，包括空格、制表符和换行符。
\S：匹配任何非空白字符。

3. 量词
*：匹配前一个元素零次或多次。
+：匹配前一个元素一次或多次。
?：匹配前一个元素零次或一次。
{n}：匹配前一个元素恰好 n 次。
{n,}：匹配前一个元素至少 n 次。
{n,m}：匹配前一个元素至少 n 次，但不超过 m 次。

4. 边界
^：匹配输入字符串的开始位置。
$：匹配输入字符串的结束位置。
\b：匹配一个单词边界（即单词与空格或标点之间）。
\B：匹配非单词边界。

5. 分组与选择
(abc)：匹配字符串 "abc" 并捕获该匹配项。
(?:abc)：匹配字符串 "abc" 但不捕获该匹配项（非捕获分组）。
(a|b)：匹配 a 或 b。

6. 转义字符
\：用于转义元字符，使其失去特殊意义。例如，\. 匹配字面上的句点。

7. 其他
(?=...)：正向先行断言，确保后面跟着某个模式，但不消耗字符。
(?!...)：负向先行断言，确保后面不跟着某个模式。
(?<=...)：正向后发断言，确保前面有某个模式，但不消耗字符。
(?<!...)：负向后发断言，确保前面没有某个模式。

示例
^\d{3}-\d{2}-\d{4}$：匹配格式如“123-45-6789”的社会安全号码。
(cat|dog)：匹配 "cat" 或 "dog"。
[A-Za-z]+\d*：匹配以字母开头，后面可以跟零个或多个数字的字符串。